package d5_list;

import java.util.LinkedList;

public class ListTest02 {
    public static void main(String[] args) {
        // 目标: 掌握LinkedList的应用
        // 1、做队列(先进先出)------->调用子类特有的功能就不要使用多态了
        //这就像一个挂号系统
        LinkedList<String> queue = new LinkedList<>();

        //入队
        queue.offerLast("第一个人");
        queue.addLast("第二个人");
        queue.addLast("第三个人");
        queue.addLast("第四个人");
        System.out.println(queue);

        //出队
        System.out.println(queue.removeFirst());
        System.out.println(queue.removeFirst());
        System.out.println(queue.removeFirst());
        System.out.println(queue);

        //2、做栈
        //就像手枪的弹夹
        LinkedList<String> stack = new LinkedList<>();
        stack.addFirst("以");
        stack.push("第1颗子弹");//push 对 addFist进行了封装
        stack.push("第2颗子弹");
        stack.push("第3颗子弹");
        stack.push("第4颗子弹");
        stack.push("第5颗子弹");
        System.out.println(stack);

        System.out.println(stack.removeLast());
        System.out.println(stack.pop());//对removeLast进行了封装
        System.out.println(stack.pop());
        System.out.println(stack);


    }
}
